package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 路径规划对象 RoutePlanning
 * 
 * @author ruoyi
 * @date 2024-09-24
 */
public class RoutePlanning extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 路径标识符 */
    private Long routeId;

    /** 出发点 */
    @Excel(name = "出发点")
    private String startLocation;

    /** 目的地 */
    @Excel(name = "目的地")
    private String endLocation;

    /** 最优路径 */
    @Excel(name = "最优路径")
    private String optimalRoute;

    /** 预计时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预计时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date estimatedTime;

    /** 实时交通更新 */
    @Excel(name = "实时交通更新")
    private String trafficUpdates;

    /** 路径规划生成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "路径规划生成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date timestamp;

    public void setRouteId(Long routeId) 
    {
        this.routeId = routeId;
    }

    public Long getRouteId() 
    {
        return routeId;
    }
    public void setStartLocation(String startLocation) 
    {
        this.startLocation = startLocation;
    }

    public String getStartLocation() 
    {
        return startLocation;
    }
    public void setEndLocation(String endLocation) 
    {
        this.endLocation = endLocation;
    }

    public String getEndLocation() 
    {
        return endLocation;
    }
    public void setOptimalRoute(String optimalRoute) 
    {
        this.optimalRoute = optimalRoute;
    }

    public String getOptimalRoute() 
    {
        return optimalRoute;
    }
    public void setEstimatedTime(Date estimatedTime) 
    {
        this.estimatedTime = estimatedTime;
    }

    public Date getEstimatedTime() 
    {
        return estimatedTime;
    }
    public void setTrafficUpdates(String trafficUpdates) 
    {
        this.trafficUpdates = trafficUpdates;
    }

    public String getTrafficUpdates() 
    {
        return trafficUpdates;
    }
    public void setTimestamp(Date timestamp) 
    {
        this.timestamp = timestamp;
    }

    public Date getTimestamp() 
    {
        return timestamp;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("routeId", getRouteId())
            .append("startLocation", getStartLocation())
            .append("endLocation", getEndLocation())
            .append("optimalRoute", getOptimalRoute())
            .append("estimatedTime", getEstimatedTime())
            .append("trafficUpdates", getTrafficUpdates())
            .append("timestamp", getTimestamp())
            .toString();
    }
}
